This invention relates generally to electronic touch screens and, more particularly, to methods and systems for detecting calibration drift in touch screens.
Electronic touch screens that provide coordinate data regarding the location of an object being brought into proximity to a screen are well known. Typically, keypads are displayed on touch screens to receive user input for application programs. These keypads are comprised of a plurality of keys that are displayed on a screen. Each keypad typically is defined by two or more corner coordinates and/or length and width parameters. These keypad data define areas on the screen that correspond to particular keys. In response to an object being brought into proximity to the screen, the screen generates location coordinates for the xe2x80x98touch xe2x80x99 and a screen control program determines whether the coordinates of the xe2x80x98touch xe2x80x99 correspond to one of the defined keypad areas. If they do, the screen control program retrieves input data that correspond to the keypad area that was xe2x80x98touched xe2x80x99 and this input data are provided to an application program. Otherwise, no input data are recognized as being generated from the touch screen and exception processing may occur to indicate an erroneous touch to the user.
Typically, touch screens are used with computers placed in locations having environmentally changing conditions. For example, touch screens are frequently displayed on automatic teller machines (ATMs) that are located outside of bank branches or shopping malls. Over extended periods of time, the temperature and humidity fluctuations may degrade the operating characteristics of the hardware components of the touch screen. Also, screen component wear or aging may also degrade the operation of a touch screen. The changes in the operating characteristics may result in a consistent change in the location coordinates generated in response to xe2x80x98touches xe2x80x99 to the screen. That is, the components of the server xe2x80x98sense xe2x80x99 the touch as occurring at a location that does not exactly correspond with the actual touch location. Thus, the location coordinates generated by the screen may be displaced by a consistent height and width from the actual location of the xe2x80x98touches xe2x80x99 sensed by the screen. Such a discrepancy between the actual locations of xe2x80x98touches xe2x80x99 and their sensed locations may occur when the components of the screen are assembled. This discrepancy is brought within an acceptable toleration range by a calibration procedure at the factory before being placed in the field for use. Consequently, the change in the touch screen components that cause the generated location coordinates to move outside the acceptable range of correspondence is called calibration drift.
As calibration drift occurs, a touch screen begins to generate location coordinates that lie outside of the defined keypad areas despite the touches actually occurring within the displayed keypad areas. Eventually, the touch screen consistently generates location coordinates that are outside of the defined keypads and users are increasingly unable to provide input to the application programs using the touch screen. This condition is either detected by users complaining about frustrations in efforts to use an application program accepting input from the touch screen or by observance of this phenomena by maintenance personnel performing periodic maintenance on the computer and touch screen. As calibration procedures are typically beyond the abilities or resources of maintenance personnel, the computer and touch screen must be taken out of use and returned to the manufacturer or service center for recalibration. Thus, significant downtime may occur as a result of a touch screen experiencing calibration drift between scheduled maintenance visits and/or returns of the screen for re-calibration.
What is needed is a method for automatically detecting calibration drift in a touch screen before touch screen operation substantially degrades.
What is needed is a method for correcting calibration drift and increasing the operational life of touch screens.
The above-noted limitations of previously known touch screens have been overcome by a system and method made in accordance with the principles of the present invention. The method of the present invention is comprised of defining a plurality of touch areas for a touch screen, defining a plurality of drift areas that correspond to the plurality of touch areas, computing a ratio between detected touch hits in each defined touch area and detected touch hits in each corresponding drift area, comparing each computed ratio to a calibration threshold, and generating a calibration signal in response to a majority of said computed ratios exceeding the calibration threshold. The touch areas preferably correspond to keypad areas for a touch screen and are in rectangular shapes, although other shapes may be used. A drift area is preferably provided for each touch area and is preferably centered about its corresponding drift area, although such centering is not required by the principles of the present invention. Location coordinates are compared to the defined touch areas and drift areas to determine whether xe2x80x98touches xe2x80x99 are in a touch area or drift area for a keypad area. The number of touches for the touch area and the number of touches for the drift area of each keypad area are accumulated. The ratio of the accumulated drift area hits to the accumulated touch area hits indicates whether the xe2x80x98touches xe2x80x99 or hits that correspond to a keypad area are occurring within the displayed area for a particular keypad area or simply near it. As the number of hits outside the touch area for a keypad area increases so does this ratio. An increasing ratio indicates the touch screen is generating erroneous location coordinates because most of the xe2x80x98touches xe2x80x99 by users are probably within one of the displayed keypad areas. The calibration threshold is selected to correspond to a ratio that detects the need for touch screen calibration before the touch screen performance degrades to a level that jeopardizes the operation of the application program.
The calibration signal may be a data message transmitted to a remote site to indicate a service call is required at the site of the touch screen and computer. If downtime before the next scheduled service call can be tolerated, the calibration signal may be comprised of an out-of-service message displayed on the touch screen or stored at the touch screen site. The message may include a service code to indicate calibration is required.
The method of the present invention may further include computing a drift vector from the location coordinates for the hits detected in the drift areas. A drift vector may be computed for each hit detected in a drift area for a keypad area and these vectors may be averaged to form an adjustment drift vector for a keypad area. Adjustment vectors for more than one of the keypad areas may be compared to determine whether the adjustment vectors are of approximately the same magnitude and direction. If they are, the method of the present invention may define a correction vector that may be used to adjust all location coordinates before sending them to the application program coupled to the touch screen. If the correction vectors associated with different keypad areas do not closely correspond then a correction vector may be associated with each keypad area that had a computed ratio exceeding the calibration threshold. Each correction vector may then be used to adjust location vectors having coordinates within the drift area associated with the correction vector.
Rather than computing an adjustment vector, the location coordinates for hits in a drift area of a keypad area may be stored in a drift hit list. The list is preferably updated by overwriting the location coordinates of the hit stored for the longest period of time with the location coordinates of the most recent hit. If the drift/touch ratio for a keypad area exceeds the calibration threshold then the coordinates of the hits in the list are used to compute an adjustment vector. Again, the adjustment vectors for more than one keypad area may be compared to determine whether a correction vector may be computed and used to correct location coordinates for the entire screen or individual keypad areas before sending them to the application program.
In a system implementing the principles of the present invention, a keypad memory stores data for defining a plurality of touch areas and drift areas. A hit detector compares location coordinates received from a touch screen to the coordinates defining the touch areas and drift areas for keypad areas displayed on the touch screen. A hit memory stores the number of hits in each defined touch area and drift area. The memory may also be used to store the drift hit list if it is used. A calibration detector computes a ratio of hits accumulated for a drift area to accumulated hits for the touch area of the corresponding keypad area. The calibration detector compares the ratio to a calibration threshold to determine whether calibration is required. If it is required, a calibration signal may be generated. Preferably, the system includes a location adjuster that determines whether the adjustment vectors for a plurality of keypad areas have a corresponding direction and magnitude. If they do, the location adjuster adjusts the definition of the touch and drift areas in the keypad memory. The hit list and counters are then re-initialized. Alternatively, the adjuster may store a correction vector in the memory so the hit detector may adjust location coordinates before processing.
The system and method of the present invention monitor location coordinates generated by a touch screen and detect whether the coordinates indicate that the components of the touch screen are drifting out of calibration. If the drift is consistent across the displayed keypad area, a correction vector for the entire screen may be computed to adjust the touch and drift areas or correct location coordinates before processing. If the drift vectors computed for multiple keypad areas are not in the same direction and are not of approximately the same magnitude then a correction vector may be computed for each keypad area for which the calibration threshold was exceeded. Each correction vector may then be used to adjust location vectors having coordinates in the associated drift area. If location vector adjustment of the location coordinates cannot be performed and a maintenance signal may be generated. Thus, the system and method of the present invention automatically detects calibration drift in a touch screen before significant degradation occurs and compensates for that drift if possible.
These and other advantages and features of the present invention may be discerned from reviewing the accompanying drawings and the detailed description of the invention.